/*
Date:20210420 12:08pm
key:每一次串失效，通过i-count回到串起点的下一个。
*/

class Solution {
public:
    int strStr(string haystack, string needle) {
        if(needle.size()==0||(haystack==needle)){return 0;}
int j=0;
int count=0;
stack<int>S;
        for(int i=0;i<haystack.size();i++)
        {
            if(haystack[i]==needle[j])
            {
                count++;
                j++;
                if(count==needle.size())
                {
                    return i-count+1;
                    // S.push(i);
                    
                    // //因为这个字符也有可能是前面的最后一个
                    // // if(j!=needle.size()-1)
                    // // {
                    // //     i++;
                    // // }
                    // j=needle.size()-1;
                    // count=0;
                }
            }
            else
            {
                i=i-count;
                j=0;
                count=0;
            }
        }

            return -1;

    }
};